#include <stdio.h>
#include <stdlib.h>

/*
 * 问题:在main中指针p为空指针   free了一个空指针
 * 	在func中指针p指向了一个空间 没有释放
 * 解决:1.传参使用二级指针
 * 	2.返回p指针
 * 为什么没有报错？ free一个空指针是可行的
 * */
#if 0
void func(int *p,int num)
{
	p=malloc(num);
	if (p=NULL)
		exit(1);
	return;
}


int main(void)
{

	int *p=NULL;
	int num = 100;
	func(p,num);
	free(p);
	exit(0);
}

#endif

#if 0 
void func(int **p,int num)
{
	*p=malloc(num);
	if (*p=NULL)
		exit(1);
	return;
}


int main(void)
{

	int *p=NULL;
	int num = 100;
	func(&p,num);
	free(p);
	exit(0);
}

#endif

void *func(int *p,int num)
{
	p=malloc(num);
	if (p=NULL)
		exit(1);
	return p;
}


int main(void)
{

	int *p=NULL;
	int num = 100;
	p=func(p,num);
	free(p);
	exit(0);
}


